import { formType, bpmStatus, colorStatus } from '@/views/formConst'
import {
  STATUS_TYPE_DRAFT,
  STATUS_TYPE_PENDING,
  STATUS_TYPE_REVIEW,
  STATUS_TYPE_APPROVED,
  STATUS_TYPE_REJECTED,
  STATUS_TYPE_FINISH,
  STATUS_TYPE_PUBLISHED,
  STATUS_TYPE_TERMINATED
} from '@/views/formConst'
export function formColumns() {
  return [
    // {
    //   type: "selection",
    //   width: 100,
    //   align: "left",
    // },
    {
      title: '流程名称',
      key: 'name'
    },
    {
      title: '关联表单',
      key: 'formListStr'
    },
    {
      title: '年份',
      key: 'year'
    },
    {
      title: '创建人',
      key: 'creator'
    },
    {
      title: '最后更新时间',
      key: 'updateTime'
    },
    {
      title: '备注',
      key: 'remark'
    },
    {
      title: '状态',
      render: (h, params) => {
        let color = colorStatus[params.row.status]
        let name = bpmStatus.find(item => item.key === params.row.status).name || '--'
        return h(
          'div',
          {
            style: {
              width: 'fit-content',
              display: 'flex',
              'justify-content': 'center',
              'align-items': 'center'
            }
          },
          [
            h('div', {
              style: {
                margin: '4px',
                width: '6px',
                height: '6px',
                'background-color': color /* 圆点颜色 */,
                'border-radius': '50%' /* 圆形 */
              }
            }),
            name
          ]
        )
      }
    },
    {
      title: '操作',
      align: 'left',
      fixed: 'right',
      width: 300,
      render: (h, params) => {
        return h('RowTools', {
          props: {
            data: [
              {
                type: 'text',
                text: '编辑',
                optType:
                  this.userCode === params.row.createBy && [STATUS_TYPE_DRAFT].includes(params.row.status)
                    ? ''
                    : 'ashing',
                handle: () => {
                  this.editBpm(params.row)
                }
              },
              {
                type: 'text',
                text: '复制',
                // optType: [STATUS_TYPE_APPROVED, STATUS_TYPE_FINISH].includes(params.row.status) ? '' : 'ashing',
                handle: () => {
                  this.copyBpm(params.row)
                }
              },
              {
                type: 'text',
                text: '删除',
                // optType: this.userCode === params.row.createBy && !params.row.formList ? '' : 'ashing',
                optType: this.userCode === params.row.createBy ? '' : 'ashing',
                handle: () => {
                  this.deleteBpm(params.row)
                }
              },
              {
                type: 'text',
                text: '查看',
                handle: () => {
                  this.previewBpm(params.row)
                }
              },
              {
                type: 'text',
                text: '关联表单',
                optType: [STATUS_TYPE_APPROVED, STATUS_TYPE_FINISH].includes(params.row.status) ? '' : 'ashing',
                handle: () => {
                  this.associate(params.row)
                }
              }
            ]
          }
        })
      }
    }
  ]
}

export function connectFormColumns() {
  return [
    {
      type: 'selection',
      width: 100,
      align: 'left'
    },
    {
      title: '表单名称',
      key: 'name'
    },
    {
      title: '模板类型',
      render: (h, params) => {
        return h('div', {}, formType.find(item => item.key === params.row.type).name)
      }
    },
    {
      title: '年份',
      key: 'year'
    },
    {
      title: '操作',
      align: 'left',
      fixed: 'right',
      width: 200,
      render: (h, params) => {
        //（1）表单状态为【制表完成】和【已发布】，该流程已关联完成的表单，对应的操作为【解绑】
        //（2）表单状态为【已发起填报】和【已结束】，该流程已关联完成的表单，对应的操作为【已关联】，且不可操作。
        const opt = ![STATUS_TYPE_PUBLISHED, STATUS_TYPE_TERMINATED].includes(params.row.status)
        return h('RowTools', {
          props: {
            data: [
              {
                type: 'text',
                text: !opt ? '已关联' : params.row.bpmpId ? '解绑' : '关联',
                optType: opt ? '' : 'ashing',
                handle: () => {
                  this.connectForm(params.row, params.row.bpmpId ? '解绑' : '关联')
                }
              }
            ]
          }
        })
      }
    }
  ]
}

export function selectColumns() {
  let list = [
    {
      type: 'selection',
      width: 100,
      align: 'left'
    },
    {
      title: '表单名称',
      key: 'formName'
    },
    {
      title: '类型',
      key: 'formSubType'
    },
    {
      title: '申报标题',
      key: 'title'
    },
    {
      title: '单位',
      key: 'org',
      render: (h, params) => {
        return h(
          'Tooltip',
          {
            props: {
              content: this.selectOrgData.find(item => item.orgCode === params.row.org)?.orgName || '--',
              placement: 'bottom',
              transfer: true
            }
          },
          [
            h('span', {}, this.selectOrgData.find(item => item.orgCode === params.row.org)?.orgName || '--') // 实际的DOM内容
          ]
        )
      }
    },
    {
      title: '当前填报周期',
      key: 'period'
    }
    // {
    //   title: '操作',
    //   align: 'left',
    //   fixed: 'right',
    //   width: 150,
    //   render: (h, params) => {
    //     return h('RowTools', {
    //       props: {
    //         data: [
    //           {
    //             type: 'text',
    //             text: '选择',
    //             // optType:
    //             //   this.formPermissions[params.row.formId].operate &&
    //             //   [STATUS_TYPE_DRAFT, STATUS_TYPE_PENDING].includes(params.row.status)
    //             //     ? ''
    //             //     : 'ashing',
    //             handle: () => {
    //               this.select(params.row)
    //             }
    //           },
    //           {
    //             type: 'text',
    //             text: '取消',
    //             handle: () => {
    //               this.select(params.row, false)
    //             }
    //           }
    //         ]
    //       }
    //     })
    //   }
    // }
  ]
  return list
}

export const approveTableColumns = [
  { prop: 'BU', label: 'BU填报' },
  { prop: 'approve1', label: '业务审批1' },
  { prop: 'approve2', label: '业务审批2' },
  { prop: 'approve3', label: '业务审批3' }
]
